Jay Fields、Shane Harvie、Martin Fowler、Kent Beck「リファクタリング: Ruby エディション」2009
https://gyazo.com/e1825aec0cea262ff7e98fe6772ac84c
code の臭い
code の重複
長い method
大きな class
長い引數 list
變更系統の分岐
shotgun 創の手術
method の浮氣
群れたがる data
primitive 強迫症
case 文
parallel な繼承階層
仕事をしない class
空論的一般化
一時 field
message の連鎖
橫流し broker
親密すぎる class
interface の異なる class 群
不完全な library class
data class
繼承した遺產の拒絕
comment
meta programming 狂
柔軟過ぎる API
紋切り型 code の繰り返し
method の構成方法
method の抽出 (extract method)
method の inline 化 (inline method)
一時變數の inline 化 (inline temp)
一時變數から問ひ合はせ method へ (replace temp with query)
一時變數から chain へ (replace temp with chain)
說明用變數の導入 (introduce explaining variable)
一時變數の分割 (split temporary variable)
object 閒での member の移動
data の構成
條件式の單純化
method 呼び出しの單純化
一般化の處理
複合的な繼承階層の分割 (tease apart inheritance)
手續き型設計から object 指向設計へ (convert procedual design to objects)
domain の presentation からの分離 (separate domain from presentation)
繼承階層の抽出 (extract hierarchy)